package com.xyy.saas.payment.cores.vo;

import com.xyy.saas.payment.cores.enums.*;
import lombok.Data;
import java.io.Serializable;

@Data
public class MerchantAccountVO implements Serializable {
    /**
     * 开户类型 merchant-企业账户 personal-个人账户
     * 必传
     */
    private AccountTypeEnum accountType;
    /**
     * 客户类型，默认卖家开户
     * 必传
     */
    private CustomerTypeEnum customerType = CustomerTypeEnum.SELLER;
    //--------------业务方信息--------------
    /**
     * 换签标识，默认非换签
     * 必传
     */
    private boolean signChange = Boolean.FALSE;
    // 支付平台id
    private String userId;
    /**
     * 接口调用方的用户id
     * 必传
     */
    private String businessId;
    /**
     * 接口嗲用方的业务类型，支付平台分配
     * 必传
     */
    private BusinessTypeEnum businessType;
    // 接口调用方的业务类型，支付平台分配
    private BusinessOrderTypeEnum businessOrderType;
    /**
     * 接口调用方的业务类型, 支付平台分配
     * 必传
     */
    private BusinessIdTypeEnum businessIdType;
    /**
     * 账户渠道选择 目前仅支持aggregate
     * 必传
     */
    private AccountChannelEnum accountChannel;
    /**
     * 支付平台分配，用于验签
     * 必传
     */
    private InvokerEnum invoker;
    /**
     * 回调通知
     * 必传
     */
    private String callback;
    //--------------企业信息--------------
    /**
     * 企业名称
     * 必传
     */
    private String entName;
    // 商户简称--
    private String entShortName;
    /**
     * 营业执照号
     * 必传
     */
    private String enterpriseRegistrationNo;
    // 客户细类--
    private String category;
    // 经营范围
    private String businessScope;
    // 注册资本金
    private String registeredCapital;
    // 注册资本金币种
    private String registeredCapitalCurrency = "CNY";
    // 注册地址
    private String registerAddress;
    // 注册省份代码
    private String provinces;
    // 注册城市代码
    private String city;
    // 注册区县代码
    private String district;
    // 客服电话
    private String customerPhone;
    // 营业执照签发日
    private String licenseTermStart;
    // 营业执照到期日
    private String licenseTermEnd;
    //--------------结算信息--------------
    /**
     * 开卡人名称
     * 必传
     */
    private String accountName;
    /**
     * 卡号
     * 必传
     */
    private String acct;
    /**
     * 开户行银行
     * 必传
     */
    private String bankName;
    /**
     * 开户支行号
     * 必传
     */
    private String branchBankCd;
    /**
     * 开户支行名称
     * 必传
     */
    private String branchBankName;
    // 银行预留手机号，对私时必填
    private String mobileNo;
    // 短信验证码--
    private String activeCode;
    //--------------联系人信息--------------
    /**
     * 联系人名称
     * 必传
     */
    private String contactName;
    /**
     * 联系人身份证号
     * 必传
     */
    private String contactIdCard;
    /**
     * 联系人电话
     * 必传
     */
    private String contactPhone;
    // 联系人邮箱
    private String contactEmail;
    // 联系人联系地址
    private String contactAddress;
    // 联系人省份代码
    private String contactProvCd;
    // 联系人城市代码
    private String contactCityCd;
    // 联系人区县代码
    private String contactContryCd;
    //--------------账号信息--------------
    /**
     * 商户登陆手机号
     * 必传
     */
    private String mobile;
    // 商户登陆邮箱
    private String email;
    //--------------法人信息--------------
    /**
     * 法人姓名
     * 必传
     */
    private String corporationName;
    /**
     * 法人手机号
     * 必传
     */
    private String corporatePhone;
    /**
     * 法人证件号
     * 必传
     */
    private String corporationIdNo;
    // 法人证件签发日
    private String idCardLegalTermStart;
    // 法人证件到期日
    private String idCardLegalTermEnd;
    // 法人国籍
    private String citizenship;
    // 法人性别
    private String sex;
    // 法人户籍地址
    private String domicileAddress;
    // 法人证件签发地址
    private String issuingAddress;
    //--------------股东信息--------------
    // 控股股东或者实际控制人
    private String controllerName;
    // 控股股东或者实际控制人证件种类
    private String controllerType;
    // 控股股东或者实际控制人证件号码
    private String controllerNumber;
    // 控股股东或实际控制人身份证签发日
    private String controllerStart;
    // 控股股东或实际控制人身份证到期日
    private String controllerEnd;
    //--------------受益人信息--------------
    // 受益人名称
    private String favoreeName;
    // 受益所有人身份证件种类
    private String favoreeType;
    // 受益所有人身份证件号码
    private String favoreeNumber;
    // 受益所有人身份证件签发日期
    private String favoreeStart;
    // 受益所有人身份证件到期日期
    private String favoreeEnd;
    // 受益所有人身份证件签发地址
    private String favoreeAddress;
    // 受益人联系电话--
    private String favoreePhone;
    //--------------图片信息--------------
    // 门头照（企业进件必传）
    private String shopEntrancePic;
    // 营业执照（企业进件必传）
    private String businessLicensePic;
    // 开户许可证（企业进件必传）
    private String openAccountPic;
    // 法人身份证正面（企业进件必传）
    private String idCardLegalZPic;
    // 法人身份证反面（企业进件必传）
    private String idCardLegalFPic;
    //------------授权人信息-------------
    // 授权人姓名
    private String operatorName;
    // 证件类型，默认二代身份证
    private String operatorCardType = "IDENTITY_CARD";
    // 授权人身份证号
    private String operatorIdNo;
    // 授权人手机号
    private String operatorPhone;
    // 业务授权函
    private String operatorCertificateUrl;
    /**
     * 操作开户机器IP
     * 必传
     */
    private String operatorIp;
    /**
     * 操作开户机器MAC地址
     * 必传
     */
    private String mac;

    /**
     * 重发验证码 0:否 1:是 仅买家需要
     */
    private Integer resendCode;
}
